[アップデート] Amazon DocumentDB(with MongoDB compatibility)でスロークエリログ が出力可能になりました
こんにちは、菊池です。
本日紹介するアップデートはこちら!
- Amazon DocumentDB (with MongoDB compatibility) adds support for slow query logging
- Profiling Amazon DocumentDB Operations
Amazon DocumentDB(with MongoDB compatibility)で、スロークエリログがCloudWatch Logsに出力可能になりました。
DocumentDBでスロークエリログを出力
早速試してみます。スロークエリログを有効化するには、パラメータグループとDBクラスタの両方で設定が必要です。
まずはパラメータグループから。以前にはなかった、3つの項目が追加されています。
- profiler:スロークエリログの有効/無効。デフォルトでは無効。
- profiler_threshold_ms:スロークエリログ出力の閾値(ms)。デフォルトは100ms。
- profiler_sampling_rate:スロークエリログ出力する割合
デフォルトではprofilerがdisabledとなっていますので、enabledに変更しておきます。
続いて、クラスタの設定です。Log exportsの項目がありますので、[Profiler logs] を有効化します。CloudWatch Logsへの出力には[RDS Service Linked Role]が利用されるようです。
この状態で、クエリを発行してみます。スロークエリの閾値に引っかかるように100万件ほどデータを投入し、フルスキャンがかかる(インデックスが有効でない)クエリを実行してみました。
すると、CloudWatch Logsのロググループ、/aws/docdb/(クラスタ名)/profiler
にスロークエリログが出力されていました。中身を確認すると、実行時間やクエリコマンドの他に、クライアントやフルスキャン/インデックススキャンも記録されていました。
最後に
Amazon DocumentDB(with MongoDB compatibility)のスロークエリログを試してみました。パフォーマンスの監視や、遅いクエリの特定に役立つ機能かと思います。実際に有効化する際には、ワークロードに適した閾値設定が必要となりますので、利用するアプリケーションを評価の上、適切に設定しましょう。